import time
import jwt


def generate_token(apikey: str, exp_seconds: int):
    try:
        id, secret = apikey.split(".")
    except Exception as e:
        raise Exception("Invalid API key format", e)

    payload = {
        "api_key": id,
        "exp": int(round(time.time())) + exp_seconds,
        "timestamp": int(round(time.time())),
    }

    # 注意：headers参数中的'sign_type'并不是JWT标准的一部分，通常不需要添加。
    # 如果您有特殊需求，确保接收端能够处理这个自定义头部。
    return jwt.encode(
        payload,
        secret.encode('utf-8'),  # 确保secret是字节类型
        algorithm="HS256",
        headers={"alg": "HS256", "typ": "JWT"},  # 仅保留标准头部
    )


apiKey = "6788648815e5121287cbc2db.SVyWuD4UmOTI7RYjr5rfXMFgvQyVHawL"
# Token有效期为3600秒（1小时）
jwt_token = generate_token(apiKey, 1576800000)
print(jwt_token)  # 打印生成的JWT
